#ifndef BREAKANDREFILLGROUPALGORITHMUNITTESTS_H
#define BREAKANDREFILLGROUPALGORITHMUNITTESTS_H

#include "stdafx.h"
#include "TestUtils.h"
#include "BreakAndRefillGroupAlgorithm.h"
#include "FillGroupAlgorithmSinglesUnitTests.h"
#include <cstdlib>


// Run the break algorithm on a copy of the vertex directory. The static directory shouldn't change..
TestUtils::TestResult BreakGroupWithTemporaryDir(int n, int w); 

// create a graph 6 on 2 and a group, try to break and improve the group, keeping breakPercent of it
TestUtils::TestResult BreakGroupIn6On2Graph(int breakPercent);

// create a graph 6 on 2 and a group, try to break and improve the group, with limitation
// on target group size. This test runs several scenarios
//TestUtils::TestResult BreakGroupIn6On2GraphWithSizeLimitation();

// create a graph 6 on 2 and a group, try to break and improve the group.
// this scenario validares that if the improved group isn't better than the original group,
// the original group won't be replaced (by creating a maximal group)
TestUtils::TestResult BreakGroupIn6On2GraphWithoutImprovement();

// create a graph 6 on 2 and a group, run the break&improve group on a group, keeping 100%
// of its original vertices.
TestUtils::TestResult BreakGroupIn6On2GraphWithoutBreaking();


#endif //BREAKANDREFILLGROUPALGORITHMUNITTESTS_H